<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //一、 数据类型 
        // 基本数据类型 ：  字符串 数字 布尔  undefined null symbol bigint
        // 复杂数据类型 ：  对象  数组  函数 正则表达式 
        // let reg = /abc/;
        // typeof   缺陷
        // 精确判断数据类型  ：Object.prototype.toString.call(“数据类型”);
        // Array.isArray();
        // constructor
        // let arr = [];
        // if(arr.constructor==Array){
        //     console.log("是数组")
        // }else{
        //     console.log("不是数组");
        // }
        // instanceof
        // let arr = [];
        // if(arr instanceof Object){
        //     console.log("是数组")
        // }

        // 二、类和构造函数的区别 
        // 1.写法不同 ，类是新的语法糖 ，本质也是函数
        // 2.函数有声明前置 类没有
        // 3.类里的函数默认是严格模式
        // 4.继承 ：构造函数默认不会继承原型方法 和静态成员 class是可以的
        // 5.类里的方法不能被遍历
    //      new Person();
        // function Person(){
        //     console.log("person",this);
        //     this.name = "hello";
        // }
        // Person.prototype.fn = function(){
        //     console.log("fn")
        // }
        // Person.num = 10;
        // // Person()
        // function Son(){
        //     Person.call(this);
        // }
        // let zhangsan = new Son();
        // console.log(zhangsan)
        // zhangsan.fn();
    //    console.log(  Son.num);
    
        // class Animal{
        //     static num = 10;
        //     constructor(){
        //         console.log("Animal")
        //     }
        //     fn(){
        //         console.log(this);
        //     }
        // }
        // console.log(Animal.prototype);
        // // for(let key in Animal.prototype){
        // //     console.log(key);
        // // }

        // class Son extends Animal{
        //     constructor(){
        //         super();
        //     }
        // }

        // let dog = new Son();
        
        // console.log(dog);
        // for(let key in dog){
        //     console.log(key);
        // }
        // dog.fn();
    //    console.log(  Son.num);
    //   let dog =  new Animal();
    //   dog.fn();
    // let myfn = dog.fn;
    // myfn();

// 数组扁平化 

// let arr = [1,2,3,[4,5,[6],[7]]];
// // ES5 
// // let res =  arr.toString();
// // // console.log(res);
// // let newarr = res.split(",");
// // console.log(newarr);

// // ES6  :flat
// let res =  arr.flat(1);
// console.log(res);

// 离线存储 ： locastroage  sessionStroage  cookie
// webwork  PWA
//  indexedDB
// document.cookie = "name=zhangsan;"
// expires  当前时间 + 过期时间
// Max-Age ：过期时间，单位是秒
    </script>
</body>
</html>